package atlantik.game;

import modelz.IdMap;

public class AtlantikState {

	private final IdMap<Integer, Player> players;

	private final IdMap<Integer, Game> games;

	private final IdMap<String, GameChoice> gameChoices;

	private final IdMap<Integer, Estate> estates;

	private final IdMap<Integer, EstateGroup> estateGroups;

	private final IdMap<Integer, Auction> auctions;

	private Player self;

	private final Details details;

	AtlantikState(Atlantik client) {
		players = new IdMap<Integer, Player>(client);
		games = new IdMap<Integer, Game>(client);
		gameChoices = new IdMap<String, GameChoice>(client);
		estates = new IdMap<Integer, Estate>(client);
		estateGroups = new IdMap<Integer, EstateGroup>(client);
		auctions = new IdMap<Integer, Auction>(client);
		details = new Details(client);
	}

	public IdMap<Integer, Player> players() {
		return players;
	}

	public IdMap<Integer, Game> games() {
		return games;
	}

	public IdMap<String, GameChoice> gameChoices() {
		return gameChoices;
	}

	public IdMap<Integer, Estate> estates() {
		return estates;
	}

	public IdMap<Integer, EstateGroup> estateGroups() {
		return estateGroups;
	}

	public IdMap<Integer, Auction> auctions() {
		return auctions;
	}

	public Player self() {
		return self;
	}

	void setSelf(Player self) {
		this.self = self;
	}

	public Details details() {
		return details;
	}

}
